]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agoanimation: Add dedicated Spinner class
Florian Müllner [Wed, 28 Nov 2018 15:41:09 +0000 (16:41 +0100)]
animation: Add dedicated Spinner class

We use AnimatedIcon with the same resource all over the place, cut
down on the duplication by providing a dedicated class.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/316

7 years agoinputMethod: Delete the enabled member since it's not used
Takao Fujiwara [Tue, 11 Dec 2018 07:18:59 +0000 (16:18 +0900)]
inputMethod: Delete the enabled member since it's not used

When `ibus restart` runs, InputMethod.enabled is changed to false
and no longer enable ibus but 'enabled' and 'disabled' signals
are not used in the current IBus clients and it's good to delete
the member simply.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/295

7 years agoaudioDeviceSelection: Only include settings button when allowed
Florian Müllner [Tue, 15 Jan 2019 19:12:04 +0000 (20:12 +0100)]
audioDeviceSelection: Only include settings button when allowed

https://gitlab.gnome.org/GNOME/gnome-shell/issues/909

7 years agokeyboard: Use addSettingsItem() in language menu
Florian Müllner [Thu, 15 Nov 2018 14:38:11 +0000 (15:38 +0100)]
keyboard: Use addSettingsItem() in language menu

If the session mode doesn't allow access to Settings, the language
menu should respect that and not expose the "Region & Languages"
panel. Using the dedicated method instead of manually constructing
the menu item takes care of that and makes for less code.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/780

7 years agoAdd Iagno to appFavorites
Bilal Elmoussaoui [Tue, 15 Jan 2019 15:31:13 +0000 (15:31 +0000)]
Add Iagno to appFavorites

7 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Mon, 14 Jan 2019 21:48:02 +0000 (21:48 +0000)]
Update Esperanto translation

7 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 14 Jan 2019 14:43:41 +0000 (15:43 +0100)]
Updated Spanish translation

7 years agoBump version to 3.31.4
Florian Müllner [Thu, 10 Jan 2019 19:37:30 +0000 (20:37 +0100)]
Bump version to 3.31.4

Update NEWS.

7 years agobuild: Remove Canberra dependency
Carlos Garnacho [Tue, 8 Jan 2019 16:19:21 +0000 (17:19 +0100)]
build: Remove Canberra dependency

It is no longer direct, but rather through mutter API.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/327

7 years agoglobal: Drop API to play sounds
Carlos Garnacho [Thu, 13 Dec 2018 19:37:24 +0000 (20:37 +0100)]
global: Drop API to play sounds

All callers have been updated to use MetaSoundPlayer. This drops direct
usage of libcanberra-gtk, and the X11 connection indirectly. One thing
worth noting is that we pass less metadata (eg. event x/y that might be
used for surrounding effects). This was all largely unused, so the
MetaSoundPlayer was made simpler.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/327

7 years agovolume: Port to MetaSoundPlayer for emitting sounds
Carlos Garnacho [Thu, 13 Dec 2018 19:33:45 +0000 (20:33 +0100)]
volume: Port to MetaSoundPlayer for emitting sounds

Move away from ShellGlobal API, which is too tightly coupled to
libcanberra-gtk.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/327

7 years agomessageTray: Port to MetaSoundPlayer for emitting sounds
Carlos Garnacho [Thu, 13 Dec 2018 19:32:16 +0000 (20:32 +0100)]
messageTray: Port to MetaSoundPlayer for emitting sounds

Move away from ShellGlobal API, which is too tightly coupled to
libcanberra-gtk. The app ID/name seem unused in canberra, so we
may simplify this to a single case.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/327

7 years agoautomountManager: Port to MetaSoundPlayer for emitting sounds
Carlos Garnacho [Thu, 13 Dec 2018 19:30:22 +0000 (20:30 +0100)]
automountManager: Port to MetaSoundPlayer for emitting sounds

Move away from ShellGlobal API, which is too tightly coupled to
libcanberra-gtk.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/327

7 years agodnd: Repick target actor if destroyed mid iteration
Jonas Ådahl [Thu, 3 Jan 2019 10:53:13 +0000 (11:53 +0100)]
dnd: Repick target actor if destroyed mid iteration

The picked target actor may be destroyed (e.g. hover style change
resulting in the ClutterTexture to be destroyed). If we don't handle
this, GJS will abort when it sees the exception caused by Javascript
code trying to access the destroyed target actor.

To handle it, listen on the 'destroy' signal on the target actor, and
repick, so a valid actor is passed to the next motion callback.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/632
7 years agolayout: Always allow hiding the overview
Pascal Nowack [Fri, 21 Sep 2018 14:58:26 +0000 (16:58 +0200)]
layout: Always allow hiding the overview

When a fullscreen application is focused,
toggling the overview via hot-corner is disabled,
even when the overview is currently visible.
This only makes sense, when the overview is
hidden to not to disturb the behaviour of the
fullscreen application, but leaves an
inconsistency when the overview is visible since
it should work there like when a non-fullscreen-
application is focused.

So, always allow hiding the overview using the
hot corner when the overview is visible.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/429

7 years agointrospect: Add GetWindows method
Olivier Fourdan [Wed, 12 Dec 2018 15:02:29 +0000 (16:02 +0100)]
introspect: Add GetWindows method

The `GetWindows` method gives access to the list of windows for each
application with some of their properties, so utilities such as dogtail
can pick the window of their choice to interfere with using the provided
window id.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/326

7 years agoAdd app introspection API
Jonas Ådahl [Wed, 5 Sep 2018 09:15:30 +0000 (11:15 +0200)]
Add app introspection API

Add a D-Bus API that allows the API user to introspect the application
state of the shell. Currently the only exposed information is list of
running applications and which one is active (i.e. has focus).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/326

7 years agoUpdate Japanese translation
Ryuta Fujii [Thu, 3 Jan 2019 07:25:23 +0000 (07:25 +0000)]
Update Japanese translation

7 years agoRemove the browser plugin
Michael Catanzaro [Mon, 31 Dec 2018 19:25:05 +0000 (13:25 -0600)]
Remove the browser plugin

The browser plugin is crashy and broken; there are dozens of bugs filed
against it on Bugzilla and nobody is looking at them. Chrome and Firefox
have both dropped support for NPAPI plugins. Epiphany still has support,
but it's hidden behind a gsetting and all the UI to enable it has been
removed, so very few users would be able to figure out how to enable.
I've even previously considered blacklisting this plugin in the past due
to all the crashes.

Since this plugin has not actually worked in any browsers for a long
time now, time to delete it.

https://bugzilla.gnome.org/show_bug.cgi?id=766776

7 years agoUpdate Swedish translation
Anders Jonsson [Fri, 28 Dec 2018 13:43:24 +0000 (13:43 +0000)]
Update Swedish translation

7 years agoUpdate Turkish translation
Emin Tufan Çetin [Tue, 25 Dec 2018 16:47:26 +0000 (16:47 +0000)]
Update Turkish translation

7 years agoUpdate Friulian translation
Fabio Tomat [Mon, 24 Dec 2018 18:05:47 +0000 (18:05 +0000)]
Update Friulian translation

7 years agoReplace Bugzilla by Gitlab URL in DOAP file
Andre Klapper [Sat, 15 Dec 2018 22:26:54 +0000 (23:26 +0100)]
Replace Bugzilla by Gitlab URL in DOAP file

7 years agothunderbolt: fix missing variable underscore for `enrolling`
RyuzakiKK [Fri, 7 Dec 2018 09:51:39 +0000 (10:51 +0100)]
thunderbolt: fix missing variable underscore for `enrolling`

The variable `this.enrolling` is a typo because it has not been defined
before and is also never used.
`this._enrolling` is what it was meant to be.

7 years agomessageTray: Re-enable unredirection when banner is destroyed
Florian Müllner [Thu, 22 Nov 2018 17:18:34 +0000 (18:18 +0100)]
messageTray: Re-enable unredirection when banner is destroyed

The intention of commit 4dc20398 was to disable unredirection while
banners are shown, but the ::done-displaying signal currently used for
re-enabling unredirection is only emitted under some circumstances, so
it's possible that unredirection is left disabled indefinitely, whoops.

Fix this by tying disabling unredirection explicitly to the lifetime
of the banner actor.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/799

7 years agost: Avoid integer overflow on unpremultiply
Florian Müllner [Thu, 22 Nov 2018 19:41:44 +0000 (20:41 +0100)]
st: Avoid integer overflow on unpremultiply

When computing the effective border color, we operate on colors with
premultiplied alpha to simplify the calculations, then unpremultiply
the result. However we miss a bounds check in the last check, so any
color component can overflow the allowed maximum of 0xff and shift the
result in unexpected ways.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/305

7 years agoStWidget: don't forget to invalidate the paint state if not on stage
Cosimo Cecchi [Wed, 21 Nov 2018 02:25:51 +0000 (18:25 -0800)]
StWidget: don't forget to invalidate the paint state if not on stage

If the actor is not on the stage yet (i.e. does not have a theme
node), but has a paint state cached, we currently fail to invalidate
it, which will lead to the actor painting with old contents once it
gets onto the stage.

This commit fixes the issue by changing our invalidation strategy;
previously we were looking at the widget's own theme node to determine
if it should be invalidated or not.
Now we look at the theme nodes of our cached paint states. When the
widget is mapped on stage, those are the same as the widget's own
theme node, but when the widget is not on the stage, we'll still be
able to invalidate them.

As part of this, we move the invalidation API to StThemeNodePaintState,
which is a more natural place for our use case.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/314

7 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 4 Dec 2018 15:39:42 +0000 (16:39 +0100)]
Updated Spanish translation

7 years agoUpdated Slovenian translation
Matej Urbančič [Sun, 2 Dec 2018 17:06:02 +0000 (18:06 +0100)]
Updated Slovenian translation

7 years agoUpdate Esperanto translation
Kristjan SCHMIDT [Wed, 28 Nov 2018 09:05:52 +0000 (09:05 +0000)]
Update Esperanto translation

7 years agoiconGrid: Eliminate JavaScript for painting/picking
Daniel van Vugt [Fri, 23 Nov 2018 08:43:34 +0000 (16:43 +0800)]
iconGrid: Eliminate JavaScript for painting/picking

The only reason for `vfunc_paint` and `vfunc_pick` existing was to
implement a culling optimization. Although that optimization actually
made performance worse than none at all because it forced the painting
and picking cycles to spend more time calling into JavaScript.

Turns out we don't have to choose between native code and culling though.
Just reimplement the culling using native ClutterActor functions and we
get the benefits of both.

Performance on an i7-7700:

Moving the cursor over the icon grid:
Before: 70% CPU, 5.5ms per frame
After : 60% CPU, 4.5ms per frame

Scrolling the icon grid:
Before: 60% CPU, 4.4ms per frame
After : 50% CPU, 3.3ms per frame

Helps with https://gitlab.gnome.org/GNOME/gnome-shell/issues/174

7 years agost-button: Ignore pointer emulated touch events
Marco Trevisan (Treviño) [Thu, 25 Oct 2018 04:35:25 +0000 (06:35 +0200)]
st-button: Ignore pointer emulated touch events

In X11, pointer emulated touch events are replicated with normal PRESS, RELEASE
pair events which are generated by the server. Thus for a single tap we get:
 - TOUCH_BEGIN -> TOUCH_END, PRESS -> RELEASE

This will cause st-button to send two "clicked" signals, instead of just one,
breaking extensions (like dash-to-dock) that show buttons in the main stage
which will be checked two times or that will receive the same signal two times.

7 years agotheme: Replace calendar arrow images with symbolic icons and CSS
daniruiz [Tue, 20 Nov 2018 16:55:31 +0000 (17:55 +0100)]
theme: Replace calendar arrow images with symbolic icons and CSS

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/301

7 years agomeson.build: Bump compatible mutter API version to 4
Jonas Ådahl [Fri, 23 Nov 2018 13:46:51 +0000 (14:46 +0100)]
meson.build: Bump compatible mutter API version to 4

7 years agoshell: Hide/drop unused public API
Carlos Garnacho [Wed, 22 Aug 2018 22:02:37 +0000 (00:02 +0200)]
shell: Hide/drop unused public API

These static methods won't work as-is as MetaStartupSequence API in
JS bindings. Luckily those are used nowhere there.

7 years agoshell: Use MetaStartupNotification
Carlos Garnacho [Wed, 22 Aug 2018 22:00:36 +0000 (00:00 +0200)]
shell: Use MetaStartupNotification

This is "API compatible" with ShellStartupNotification, so only
C changes are necessary.

7 years agotheme: Drop custom assets for window close buttons in overview
Sam Hewitt [Fri, 16 Nov 2018 16:15:44 +0000 (11:15 -0500)]
theme: Drop custom assets for window close buttons in overview

They can be replaced by a themed icon and some CSS styling.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/782

7 years agotheme: Replace page indicator assets with css
Sam Hewitt [Fri, 16 Nov 2018 18:44:52 +0000 (13:44 -0500)]
theme: Replace page indicator assets with css

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/297

7 years agotheme: Replace corner ripple png assets with css
Sam Hewitt [Fri, 16 Nov 2018 19:05:05 +0000 (14:05 -0500)]
theme: Replace corner ripple png assets with css

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/298

7 years agodash: destroy items's child before tooltip
Andrea Azzarone [Fri, 16 Nov 2018 18:31:56 +0000 (18:31 +0000)]
dash: destroy items's child before tooltip

Destroy the DashItemContainer's child from the same handler as the tooltip. This
will prevent invalid reads when the item is destroyed while its quicklist is
still open.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/781
7 years agoaltSwitcher: Fix error when all alternatives are disabled
Florian Müllner [Fri, 16 Nov 2018 10:39:08 +0000 (11:39 +0100)]
altSwitcher: Fix error when all alternatives are disabled

While we do consider the case that we don't have a child to show for the
visibility, we are still trying to move the click action unconditionally.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/783

7 years agoibusManager: Don't pass undefined callback to ibus
Florian Müllner [Thu, 15 Nov 2018 17:47:55 +0000 (18:47 +0100)]
ibusManager: Don't pass undefined callback to ibus

Since commit 551e8278416, we don't always pass a callback parameter.
However passing it on as undefined to ibus doesn't work, as gjs doesn't
accept that as a valid callback value and throw an error. As a result,
we can end up with no layout selected in the keyboard menu and an "empty"
indicator. Fix this by explicitly passing null if no callback has been
provided.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/293

7 years agoapp-usage: Remove more unused things
Jasper St. Pierre [Mon, 9 Apr 2012 07:10:35 +0000 (04:10 -0300)]
app-usage: Remove more unused things

https://bugzilla.gnome.org/show_bug.cgi?id=673767

7 years agoapp-usage: Remove unused open-window-count attribute
Jasper St. Pierre [Mon, 9 Apr 2012 07:08:07 +0000 (04:08 -0300)]
app-usage: Remove unused open-window-count attribute

Since this has already been unused and was inaccessible, this shouldn't
matter too much.

https://bugzilla.gnome.org/show_bug.cgi?id=673767

7 years agoapp-usage: Remove crufty old "context"s idea
Jasper St. Pierre [Mon, 9 Apr 2012 06:27:47 +0000 (03:27 -0300)]
app-usage: Remove crufty old "context"s idea

Back in the day, there was a proposed system of tracking apps in a
specific context.

The inspiration was that you may have used apps in multiple modes:
Firefox may have been used in both "Programmer Reference" and
"Kitten Videos" contexts. Early user response to the feedback wasn't
too positive - context switching is something that humans have trouble
doing implicitly, let alone explicitly. The old codebase still has a
few remnants of this around; let's finally put them to rest.

Note that we still write out a dummy context tag to the XML file - old
versions of the shell will flat out crash if you don't have one of those
in there, so just leave it in for compatibility sake.

https://bugzilla.gnome.org/show_bug.cgi?id=673767

7 years agopower: Label the PENDING_CHARGE state as "Not Charging"
João Paulo Rechi Vita [Fri, 2 Nov 2018 20:51:33 +0000 (13:51 -0700)]
power: Label the PENDING_CHARGE state as "Not Charging"

The pending-charge state means AC power is on but the battery is not
being charged. This can happen because its charge is above a certain
threshold, to avoid short charging cycles and prolong the battery's
life, or because the PSU is not powerful enough to charge the batteries.

Instead of lying to the user about something being estimated, we should
simply tell the truth and set the label to "Not Charging".

Closes: #701.
7 years agowindowAttentionHandler: Fix syntax errors
Florian Müllner [Wed, 14 Nov 2018 18:38:33 +0000 (19:38 +0100)]
windowAttentionHandler: Fix syntax errors

Gah, why didn't we catch those?!

7 years agowindowAttentionHandler: Handle XUrgencyHint as well
Florian Müllner [Fri, 13 Jul 2018 17:16:14 +0000 (19:16 +0200)]
windowAttentionHandler: Handle XUrgencyHint as well

While it's not commonly used, it is easy enough to handle it the
same as the demands-attention hint, so do just that.

https://bugzilla.gnome.org/show_bug.cgi?id=643595

7 years agoBump version to 3.31.2
Florian Müllner [Wed, 14 Nov 2018 00:03:18 +0000 (01:03 +0100)]
Bump version to 3.31.2

Update NEWS.

7 years agoworkspace: Confine caption width to workspace area
Florian Müllner [Sat, 1 Sep 2018 16:57:59 +0000 (18:57 +0200)]
workspace: Confine caption width to workspace area

When we started to only show a single caption at a time, we allowed
title captions to be wider than their corresponding window preview.
But while overlapping neighboring previews is fine, we shouldn't
allow the captions to leak outside the workspace area itself and
overlap unrelated elements like workspace switcher or dash.

This partly reverts commit b3b30f239d.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/214

7 years agoworkspace: Remove dead code
Florian Müllner [Mon, 1 Oct 2018 14:24:22 +0000 (16:24 +0200)]
workspace: Remove dead code

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/214

7 years agoinputMethod: Keep track of preedit string visibility
Carlos Garnacho [Tue, 13 Nov 2018 17:28:15 +0000 (18:28 +0100)]
inputMethod: Keep track of preedit string visibility

So we can silence update-preedit-text signals that keep the
preedit string invisible.

https://gitlab.gnome.org/GNOME/gtk/issues/1447

7 years agoinputMethod: Avoid calling set_preedit_text() if unnecessary
Carlos Garnacho [Tue, 13 Nov 2018 17:26:13 +0000 (18:26 +0100)]
inputMethod: Avoid calling set_preedit_text() if unnecessary

This is easier down on clients.

7 years agowindowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll
Erik Duxstad [Mon, 5 Nov 2018 23:13:26 +0000 (17:13 -0600)]
windowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll

Instead of defaulting to a natural scroll behavior,
have the workspace switch action use the natural-scroll setting
in org.gnome.peripherals.touchpad to determine the correct
direction of travel when swiping. 4 finger swipes will then
match the behavior of the rest of the UI.

Reference: https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

7 years agonotificationDaemon: Don't pass unused extra hints value
Marco Trevisan (Treviño) [Fri, 9 Nov 2018 08:08:25 +0000 (02:08 -0600)]
notificationDaemon: Don't pass unused extra hints value

Probably this is a leftover of old implementations of _iconForNotificationData,
but right now this only takes a value, so just pass one.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/285

7 years agonotificationDaemon: support file:// or icon theme names for image-path
Marco Trevisan (Treviño) [Fri, 9 Nov 2018 08:01:28 +0000 (02:01 -0600)]
notificationDaemon: support file:// or icon theme names for image-path

While this sounds counter-intuitive, the image-path hint value might also
be used with URIs or icon names.

As per freedesktop standard:
  The "app_icon" parameter and "image-path" hint should be either an URI
  (file:// is the only URI schema supported right now) or a name in a
  freedesktop.org-compliant icon theme (not a GTK+ stock ID).

Thus the image-path hint should also be parsed as it happens for the
app_icon.

Reuse same logic, by falling back on _iconForNotificationData with the
hint value.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/285

7 years agost: Remove deprecated cogl_texture_new()
Georges Basile Stavracas Neto [Sun, 11 Nov 2018 00:41:28 +0000 (22:41 -0200)]
st: Remove deprecated cogl_texture_new()

cogl_texture_new() is used in a few places in GNOME Shell, but
it's a deprecated Cogl function. The replacement is the less
verbose cogl_texture_2d_new_with_size(), that is very much a
straightforward replacement.

Remove the few places where this function is used, replacing
it by the CoglTexture2d counterpart.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/287

7 years agocalendar: do not call destroy() recursively
Cosimo Cecchi [Thu, 11 Oct 2018 02:08:38 +0000 (19:08 -0700)]
calendar: do not call destroy() recursively

We have a callback that will call close() when the notification is
destroyed, and a callback that will call destroy() on the notification
when the message is closed.

Currently, if the notification is destroyed we'll execute our callback
that will call again destroy() on the notification. That's bad
practice in general, and it also has the side effect of resetting the
destroy reason.

This commit avoids re-destroying the notification by dropping the
notification reference on destroy.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258

7 years agonotificationDaemon: use different reason when replacing notification
Cosimo Cecchi [Thu, 11 Oct 2018 01:26:31 +0000 (18:26 -0700)]
notificationDaemon: use different reason when replacing notification

Differently from the fd.o notifications, Gtk notifications do not
have a mechanism to update themselves. Instead, when a new
notification is received for an ID already known to the notification
daemon, the old notification is dismissed and a replaced with a new
one.

Currently though, there is no way to distinguish a notification that
was dismissed because of an user interaction, or because it was
replaced. That is an useful piece of information, so add a new value
to the NotificationDestroyedReason enum to account for it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258

7 years agonotificationDaemon: separate out GtkNotification creation
Cosimo Cecchi [Thu, 11 Oct 2018 00:28:43 +0000 (17:28 -0700)]
notificationDaemon: separate out GtkNotification creation

This way, source subclasses can easily use a notification subclass
if different functionality is required.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/258

8 years agoStTextureCache: use right event to detect file changes
Cosimo Cecchi [Fri, 9 Nov 2018 21:55:53 +0000 (13:55 -0800)]
StTextureCache: use right event to detect file changes

StTextureCache installs file monitors that invalidate caches when
contents of the underlying file change.
At the moment, the cache uses the Gio.FileMonitorEvent.CHANGED event
type to make that determination.

However, that is suboptimal for at least two reasons:
- while a file is being written to disk, many CHANGED events will be
  emitted in sequence. That will cause needless cache invalidations,
  and we will risk loading the file before it's fully loaded.
- if an existing file is replaced, e.g. with g_file_replace(), we may
  not get a CHANGED event but a CREATED one instead, so the cache ends
  up never getting invalidated.

The good news is that in both of those cases GFileMonitor will send a
CHANGES_DONE_HINT event after changes have settled, or after the file
is replaced.

This commit fixes both cases by switching from the CHANGED event to
CHANGES_DONE_HINT to determine that a file has in fact changed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/286

8 years agokeyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type
Takao Fujiwara [Fri, 31 Aug 2018 11:22:23 +0000 (20:22 +0900)]
keyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type

When gnome-shell receives the signal of 'set-content-type' from ibus,
gnome-shell calls KeyboardManager.holdKeyboard() and
KeyboardManager.releaseKeyboard() and the functions change the current
input focus in GNOME Xorg and it could result in closing a popup window
which has a password entry by focusing on the entry.
The solution is to stop to call the APIs on 'set-content-type' signal.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/391

8 years agomessageTray: Disable unredirection while showing banners
Florian Müllner [Sun, 12 Aug 2018 23:25:13 +0000 (01:25 +0200)]
messageTray: Disable unredirection while showing banners

We don't usually show notification banners while the monitor is in
fullscreen, but when we do - the notification is urgent - we should
actually show the banner, even if the top-most window is unredirected.
To achieve that, disable unredirection while the banner is showing.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/430

8 years agoworkspaces: Use correct schema for workspace settings
Florian Müllner [Thu, 8 Nov 2018 09:47:25 +0000 (10:47 +0100)]
workspaces: Use correct schema for workspace settings

The custom overrides system is gone, we need to use the original
mutter schema.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/768

8 years agopolkit: Only unregister registered handles
Georges Basile Stavracas Neto [Thu, 22 Mar 2018 14:11:38 +0000 (11:11 -0300)]
polkit: Only unregister registered handles

If the initialization fails for some reason, for example by
running 'gnome-shell --replace', we should not crash because
of an attempt of unregistering an unregistered agent handle.

Fix that by checking if the handle is not NULL before calling
the unregistering routines.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/66

8 years agopolkit: Port to G_DECLARE_FINAL_CLASS
Georges Basile Stavracas Neto [Thu, 22 Mar 2018 13:50:20 +0000 (10:50 -0300)]
polkit: Port to G_DECLARE_FINAL_CLASS

So we can remove this old boilerplate code. In order to be able
to use that, the autoptr function for PolkitAgentListener was
added as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/66

8 years agoUpdate Spanish translation
Daniel Mustieles [Tue, 6 Nov 2018 11:04:19 +0000 (11:04 +0000)]
Update Spanish translation

8 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 5 Nov 2018 19:58:30 +0000 (19:58 +0000)]
Update Brazilian Portuguese translation

(cherry picked from commit e55bdb0fbbe4f0618b64461765161d4b2f697e7e)

8 years agoTheme: fix modal dialog button
Jakub Steiner [Fri, 2 Nov 2018 13:45:05 +0000 (14:45 +0100)]
Theme: fix modal dialog button

- allow for focused hover state

Fixes issue #727

8 years agoiconGrid: Keep icons reactive during pulse animation
Daniel van Vugt [Fri, 12 Oct 2018 04:00:31 +0000 (12:00 +0800)]
iconGrid: Keep icons reactive during pulse animation

The `reactive` property of icon actors was being restored multiple times
over the course of the pulse animation, all at slightly different times
as each icon finished animating at different times.

The problem is that toggling `reactive` on an `StWidget` incurs a style
change of the `insensitive` pseudo class, and style changes would quickly
queue relayouts incurring full stage reallocation. This occurred many times
during a pulse animation, limiting its smoothness and performance.

The solution is to not toggle the `reactive` property in the pulse
animation at all, which avoids incurring multiple full stage relayouts.

As a bonus, this means the icon under the cursor pulses with the correct
selection highlight, appearing more seamless and responsive.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/261

8 years agoiconGrid: Defer and group animation cleanup
Daniel van Vugt [Fri, 5 Oct 2018 09:09:22 +0000 (17:09 +0800)]
iconGrid: Defer and group animation cleanup

The `reactive` property of icon actors was being restored 24 times over
the course of the spring animation, all at slightly different times as
each icon finished animating at different times.

The problem is that toggling `reactive` on an `StWidget` incurs a style
change of the `insensitive` pseudo class, and style changes would quickly
queue relayouts incurring full stage reallocation. This occurred many times
during a spring animation hogging the CPU and limiting the frame rate.

The solution is defer and batch the cleanup for all icons until after the
last icon has finished animating. This way the CPU impact of the style
change and stage relayout isn't felt during the animation so the frame
rate remains higher and smoother. The overall CPU usage of the animation
is also reduced as the remaining relayouts are much more likely to be
grouped into a single frame.

Icon spring animation performance on an i7-7700:
Before: 83% CPU and 47 FPS
After : 78% CPU and 54 FPS
which is about a 22% increase in performance per clock (FPS/CPU).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/253

8 years agoUpdate Malayalam translation
Anish Sheela [Sun, 28 Oct 2018 14:08:07 +0000 (14:08 +0000)]
Update Malayalam translation

8 years agoUpdated Slovenian translation
Matej Urbančič [Thu, 25 Oct 2018 19:40:05 +0000 (21:40 +0200)]
Updated Slovenian translation

8 years agoswitcherPopup: Bind to the stage, not the monitor
Georges Basile Stavracas Neto [Wed, 10 Oct 2018 20:46:26 +0000 (17:46 -0300)]
switcherPopup: Bind to the stage, not the monitor

The switcher popup is a large, mostly transparent actor that
should cover all the clickable area of GNOME Shell. In Clutter
terms, it should cover the whole stage.

By binding it to the primary monitor, the Alt+Tab behavior
becomes a bit inconsistent. For example, by not hiding when
clicking at empty spaces at other monitors.

Fix that by binding the SwitcherPopup to the whole stage,
and not only the primary monitor.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/647

8 years agoRemove padding from date strings
Carmen Bianca Bakker [Mon, 15 Oct 2018 14:50:02 +0000 (16:50 +0200)]
Remove padding from date strings

The padding is removed by using %-d instead of %e or %d.

Examples:

"%B %d %Y"  -> "October 04 2018"

"%B %e %Y"  -> "October  4 2018"

"%B %-d %Y" -> "October 4 2018"

https://gitlab.gnome.org/GNOME/gnome-shell/issues/666

8 years agoChange a translator comment to be less ambiguous
Carmen Bianca Bakker [Mon, 15 Oct 2018 14:43:36 +0000 (16:43 +0200)]
Change a translator comment to be less ambiguous

https://gitlab.gnome.org/GNOME/gnome-shell/issues/666

8 years agoUpdate Slovak translation
Dušan Kazik [Wed, 24 Oct 2018 06:31:09 +0000 (06:31 +0000)]
Update Slovak translation

8 years agoautomountManager: Add handling of udisks errors for no/wrong passwords
Sebastian Pinnau [Thu, 11 Oct 2018 17:14:25 +0000 (19:14 +0200)]
automountManager: Add handling of udisks errors for no/wrong passwords

If no password or a wrong password is entered after automounting an
encrypted device, then the password should be reasked. However, this
does not happen because the relevant udisks error messages for this
cases are missing in the exception handler that calls _reaskPassword.

Fix this issue by adding the relevant udisks error strings to the
exception handling in the _onVolumeMounted method.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/640

8 years agobuild: Include params.js in portal-helper gresources
verdre [Sat, 20 Oct 2018 15:21:02 +0000 (17:21 +0200)]
build: Include params.js in portal-helper gresources

Fix a regression causing the portal helper to crash.
In 94423151b2e1f5e2ee8ccc884c52f50673db5fb9 we moved the dbus interface
descriptions into seperate files which is why we had to include the
fileUtils js module. This module imports the params js module, so add
params.js to the gresources file for the portal helper.

8 years agopanel: Also ignore hidden windows for proximity
Florian Müllner [Tue, 23 Oct 2018 14:05:01 +0000 (16:05 +0200)]
panel: Also ignore hidden windows for proximity

We currently only ignore minimized windows, not windows that are
hidden for other reasons - namely on wayland windows are initially
hidden until they are placed.

This fixes a flicker in the transparent top bar on wayland when the
"position" of an unplaced window wrongly suggests the window is
overlapping the top bar.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/693

8 years agokeyboardManager: Avoid idempotent calls to meta_backend_set_keymap()
Carlos Garnacho [Mon, 22 Oct 2018 22:06:36 +0000 (00:06 +0200)]
keyboardManager: Avoid idempotent calls to meta_backend_set_keymap()

But still try to apply the keymap whenever the input sources changed. This
is a different approach to gnome-shell#240 that still avoid redundant
changes to the current keymap, but actually trigger one when input sources
are added.

https://bugzilla.redhat.com/show_bug.cgi?id=1637418

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/691
8 years agoosdWindow: Disconnect signals on destroy
Florian Müllner [Sun, 23 Sep 2018 01:06:21 +0000 (03:06 +0200)]
osdWindow: Disconnect signals on destroy

Since we started to show OSD windows on all monitors, OSD windows are
destroyed when the corresponding monitor is disconnected. We shouldn't
leave any signal handlers around in that case - they prevent the object
from being garbage collected, and trigger warnings for accessing proper-
ties of invalidated GObjects.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/602

8 years agoosdWindow: Ensure we setMaxLevel before setting Level itself
Didier Roche [Thu, 18 Oct 2018 15:26:03 +0000 (17:26 +0200)]
osdWindow: Ensure we setMaxLevel before setting Level itself

When maxLevel is > 100%, first OSD appearance was capping the current
level to 100%. Consecutives key press were then OK.
Ensure we setMaxLevel before setting Level itself, so that correct cap
value is applied.

8 years agoUpdate Esperanto translation
Kristjan SCHMIDT [Tue, 16 Oct 2018 21:02:53 +0000 (21:02 +0000)]
Update Esperanto translation

8 years agoFix enumeration in HACKING.md
Sergio Costas [Sun, 14 Oct 2018 12:05:04 +0000 (14:05 +0200)]
Fix enumeration in HACKING.md

The HACKING.md file contains an enumeration in the Indentation and
whitespace section, but the sentences look incorrectly divided.

This patch proposes a fix for that section, reordering all its
contents in a single enumeration, instead of a paragraph and
an enumeration, and also reconstruct the sentences.

8 years agoappFolder: Don't block all shortcuts
Florian Müllner [Thu, 11 Oct 2018 18:12:54 +0000 (20:12 +0200)]
appFolder: Don't block all shortcuts

App folder popups take a grab when opened, and as we don't pass any
particular pushModal() parameters, all keybindings are blocked. While
this makes sense for most keybindings that would interfere with the
popup interaction, others like volume/brightness keys or screenshots
can be allowed safely.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/648

8 years agopopupMenu: Handle keypress if numlock is enabled
Andrea Azzarone [Wed, 12 Sep 2018 20:13:04 +0000 (22:13 +0200)]
popupMenu: Handle keypress if numlock is enabled

Add exception to handle a keypress if numlock is enabled as we already do for
capslock. This uses Clutter.ModifierType.MOD2_MASK because at the moment there
is not a more explicit way to refer to the numlock mask.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/550
8 years agoshell: Remove ShellGenericContainer
Georges Basile Stavracas Neto [Fri, 13 Jul 2018 14:05:00 +0000 (11:05 -0300)]
shell: Remove ShellGenericContainer

Now that it is no longer used in GNOME Shell, let's
remove this old workaround. This commit also removes
the docs reference from the sgml file.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agodash: expand and center align DashItemContainer
Georges Basile Stavracas Neto [Thu, 13 Sep 2018 20:37:54 +0000 (17:37 -0300)]
dash: expand and center align DashItemContainer

This is necessary to keep the small actor that shows up
during drag motion center aligned.

8 years agopanel: Delegate container destruction to PanelMenu.ButtonBox
Georges Basile Stavracas Neto [Wed, 29 Aug 2018 01:37:27 +0000 (22:37 -0300)]
panel: Delegate container destruction to PanelMenu.ButtonBox

Instead of taking care of the PanelMenu.ButtonBox.container
destruction by itself, delegate that to the very object that
created it in the first place: PanelMenu.ButtonBox itself.

8 years agost-bin: Destroy child in ClutterActor:destroy vfunc
Georges Basile Stavracas Neto [Tue, 28 Aug 2018 20:29:13 +0000 (17:29 -0300)]
st-bin: Destroy child in ClutterActor:destroy vfunc

According to Clutter documentation, "[…] actors implementing the
ClutterContainer interface should override the default implementation
of the class handler of this signal and call clutter_actor_destroy()
on their  children."

StBin was doing that in GObject:dispose() instead. Move the child
destruction to a new ClutterActor:destroy() vfunc override.

8 years agokeyboard: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Thu, 12 Jul 2018 12:36:46 +0000 (14:36 +0200)]
keyboard: Stop using Shell.GenericContainer

This is the last remaining usage of Shell.GenericContainer
in the codebase, and posed small challenges compared to the
other removals.

A new St.Widget subclass called InputSourceIndicatorContainer
was added as a replacement to the Shell.GenericContainer. It
was needed because GNOME Shell needs to override the regular
size allocation functions, but InputSourceIndicator already
is a St.Widget with its own size allocation overrides.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agotests: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Fri, 13 Jul 2018 14:01:42 +0000 (11:01 -0300)]
tests: Stop using Shell.GenericContainer

The test doesn't look and behave like before, but they are
already broken in master anyway. This commit makes it work
without Shell.GenericContainer, but the test itself remains
to be fixed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoinspector: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Mon, 9 Jul 2018 07:49:37 +0000 (09:49 +0200)]
inspector: Stop using Shell.GenericContainer

No alarms and no surprises here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:38:23 +0000 (07:38 -0300)]
boxPointer: Stop using Shell.GenericContainer

An easy removal too.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Add compatibility API
Georges Basile Stavracas Neto [Fri, 27 Jul 2018 16:15:16 +0000 (13:15 -0300)]
boxPointer: Add compatibility API

Because we're late in the cycle, and don't know how many
extensions actually rely on this API, this commit adds
back the BoxPointer.show() and .hide() functions, with
warning messages to notify consumers that this is going
to be removed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Rename show/hide to open/close
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:29:44 +0000 (07:29 -0300)]
boxPointer: Rename show/hide to open/close

Pretty much like dd4709bb2, BoxPointer's show() and hide()
functions will clash with Clutter.Actor's ones.

In addition to that, on a conceptual level, the current API
is not great, because calling boxPointer.hide() won't result
in boxPointer.actor.visible == false.

For these reasons, rename show() and hide() to open() and
close(). A compatibility layer will be added in a following
commit, warning about the usage of show() and hide().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agologinDialog: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sat, 7 Jul 2018 11:30:18 +0000 (13:30 +0200)]
loginDialog: Stop using Shell.GenericContainer

Removing the Shell.GenericContainer from the login dialog
was remarkably easier, since it only overrides 'allocate'.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agolayoutManager: Subclass GObject.Object
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:13:30 +0000 (07:13 -0300)]
layoutManager: Subclass GObject.Object

LayoutManager is currently a pure JavaScript class that
relies on the rudimentary Signals.addSignalMethods() to
handle signals. This is an inefficient implementation of
one of the most central classes in GNOME Shell.

In addition to removing Shell.GenericContainer, then,
turn LayoutManager into a proper GObject.Object subclass.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agolayoutManager: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sat, 7 Jul 2018 11:12:33 +0000 (13:12 +0200)]
layoutManager: Stop using Shell.GenericContainer

This one was remarkably easy to port. In order to make it,
replace the Shell.GenericContainer handlers by a constraint
and simply replace it by a St.Widget.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153